﻿using System;
using System.Collections.Generic;
using BUS.DAL;

namespace BUS
{
    public class KhachHangBUS
    {
        #region PROPERTIES
        public int ID { get; set; }
        public string TenDangNhap { get; set; }
        public string MatKhau { get; set; }
        public string HoTen { get; set; }
        public string SoDienThoai { get; set; }
        public string DiaChi { get; set; }
        public string CMND { get; set; }
        public string Email { get; set; }
        public string CauHoi { get; set; }
        public string TraLoi { get; set; }
        #endregion

        /// <summary>
        /// Thêm mới 1 khách hàng
        /// </summary>
        public void Add()
        {
            this.ID = KhachHangDAL.Insert(this);
        }
        /// <summary>
        /// check đã đăng nhập hay chưa
        /// </summary>
        /// <returns>True: nếu đã đăng nhập và ngược lại</returns>
        public bool CheckLogin()
        {
            return KhachHangDAL.CheckLogin(this);
        }

        /// <summary>
        /// đối tượng khách hàng có property là TENDANGNHAP, trả lời 1 đối tượng với thông tin tương ứng
        /// </summary>
        /// <returns>true: nếu có khách hàng phù hợp với tên đăng nhập</returns>
        public bool GetbyUserName()
        {
            var kh = KhachHangDAL.GetByUserName(this);
            if (kh != null)
            {
                ID = kh.ID;
                TenDangNhap = kh.TenDangNhap;
                HoTen = kh.HoTen;
                SoDienThoai = kh.SoDienThoai;
                DiaChi = kh.DiaChi;
                CMND = kh.CMND;
                Email = kh.Email;
                CauHoi = kh.CauHoi;
                TraLoi = kh.TraLoi;
                return true;
            }
            return false;
        }

        /// <summary>
        /// thay đổi password
        /// </summary>
        public void ChangePass()
        {
            KhachHangDAL.ChangePass(this);
        }

        public static bool ProcessAccountNumber(string accountNumber, decimal totalAmount, out string strError)
        {
            var taiKhoan = KhachHangDAL.GetMoney(accountNumber);
            if (taiKhoan == null)
            {
                strError = "Số tài khoản không tồn tại trong hệ thống";
                return false;
            }
            if (taiKhoan.SoTien < totalAmount)
            {
                strError = "Số tiền trong tài khoảng không đủ thực hiện giao dịch";
                return false;
            }

            taiKhoan.SoTien = taiKhoan.SoTien - totalAmount;

            KhachHangDAL.UpdateMoneyAccount(taiKhoan);
            strError = "Thanh toán đặt hàng thành công.<br/>Hệ thống tự động chuyển về trang chủ sau 5 giây.";
            return true;
        }
        #region dang
        public static List<KhachHangBUS> GetAll()
        {
            return KhachHangDAL.GetAll();
        }
        public string GhiChu { get; set; }
        public bool IsBad
        {
            get 
            {
                if (this.GhiChu == null || this.GhiChu == "")
                    return false;
                else
                    return true;
            }
        }

        public static KhachHangBUS GetByID(int ID)
        {
            return KhachHangDAL.GetByID(ID);
        }
        public void UpDateGhiChu()
        {
            KhachHangDAL.UpDateGhiChu(this);
        }
        public void Delete()
        {
            KhachHangDAL.Delete(this);
        }
        #endregion





       
    }

}
